#define _CRT_SECURE_NO_WARNINGS 1

#include <iostream>
#include <assert.h>
using namespace std;
//
//typedef int DataType;
//class Stack
//{
//public:
//	void Init(size_t capacity)
//	{
//		assert(capacity > 0);
//		_array = (DataType*)malloc(sizeof(DataType) * capacity);
//		if (_array == NULL)
//		{
//			perror("malloc fail");
//			return;
//		}
//
//		_capacity = capacity;
//		_size = 0;
//	}
//
//	void Push(const DataType& data)
//	{
//		if (_capacity == _size)
//		{
//			_capacity *= 2;
//			DataType* tmp = (DataType*)realloc(_array, sizeof(DataType) * _capacity);
//			if (tmp == NULL)
//			{
//				perror("realloc fail");
//				return;
//			}
//			_array = tmp;
//		}
//
//		_array[_size++] = data;
//	}
//
//	DataType Top()
//	{
//		assert(_size > 0);
//
//		return _array[_size - 1];
//	}
//
//	void Pop()
//	{
//		assert(_size > 0);
//
//		_size--;
//	}
//
//	void Destory()
//	{
//		free(_array);
//		_capacity = _size = 0;
//		_array = nullptr;
//	}
//
//private:
//	DataType* _array;
//	size_t _capacity;
//	size_t _size;
//};
//
//int main()
//{
//	Stack s;
//	s.Init(3);
//	s.Push(1);
//	s.Push(2);
//	s.Push(3);
//	s.Push(4);
//	s.Push(5);
//	s.Push(6);
//	cout << s.Top() << endl;
//	s.Destory();
//	return 0;
//}

//class Person
//{
//public:
//	void PrintPersonInfo();
//private:
//	char _name[20];
//	char _gender[20];
//	int _age;
//};
//
//void Person::PrintPersonInfo()
//{
//	cout << _name << endl << _gender << endl << _age << endl;
//}

//class Date
//{
//public:
//	void Init(const int year, const int month, const int day)
//	{
//		_year = year;
//		_month = month;
//		_day = day;
//	}
//
//	void Print()
//	{
//		cout << _year << '-' << _month << '-' << _day << endl;
//	}
//
//private:
//	int _year;
//	int _month;
//	int _day;
//};
//
//int main()
//{
//	Date d1, d2;
//	d1.Init(2024, 6, 15);
//	d2.Init(2024, 6, 16);
//	d1.Print();
//	d2.Print();
//
//	return 0;
//}

//class A
//{
//public:
//	void Print()
//	{
//		cout << _a << endl;
//	}
//
//private:
//	int _a;
//};
//
//int main()
//{
//	A* p = nullptr;
//	p->Print();
//
//	return 0;
//}